// Пример 13. Вычисляем все корни квадратного уравнения.
// Подключение библиотеки math

// ax^2 + bx + c = 0
// a, b, c - вещественные числа, а а не равно 0.
// b^2 - 4ac - детерминант квадратного уравнения, позволяет определить природу корней
// детерминант > 0, корни вещественные и разные
// детерминант = 0, корень один
// детерминант < 0 корни комплексные и их два.

#include <stdio.h>
#include <math.h>

int main(int argc, char const *argv[])
{
    double a, b, c, determinant, root1, root2, realPart, imaginfryPart;
    
    printf("Введите коэффициенты a, b и c: ");
    scanf("%lf %lf %lf", &a, &b, &c);

    determinant = b * b - 4 * a * c;

    if(determinant > 0)
    {
        // sqrt() возвращает квадратный корень
        root1 = (-b + sqrt(determinant)) / (2 * a);
        root1 = (-b - sqrt(determinant)) / (2 * a);

        printf("root1 = %.2lf и root2 = %.2lf\n", root1, root2);
    }
    // когда корень один
    else if(determinant == 0)
    {
        root1 = root2 = -b / (2 * a);
        printf("root1 = root2 = %.2lf;\n", root1);
    }

    // если корни комплексные
    else{
        realPart = -b / (2 * a);
        imaginfryPart = sqrt(-determinant) / (2 * a);
        printf("root1 = %.2lf + %.2lfi и root2 = %.2f - %.fi\n",
         realPart, imaginfryPart, realPart, imaginfryPart);
    }
    
    return 0;
}
